Управление сотрудниками
UserManager
Управление сотрудниками.
class yandex_b2b_go.user.UserManager(client: Client)
Атрибут
-
SpendingManager — детализация затрат сотрудников.
spending: SpendingManager
Методы
- create — создает сотрудника.
- list — получает список сотрудников.
- get — получает подробную информацию о сотруднике клиента.
- update — обновляет информацию о сотруднике клиента.
- archive — архивирует сотрудник клиента.
Create
Создает сотрудника.
async def create(user: User) -> UserCreateResponse
Параметр
user
– данные о новом сотруднике. Класс User.
В случае успешного выполнения возвращает класс UserCreateResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
user = typing.User(
fullname='Иванов Илья',
phone='+79990000000',
is_active=True,
nickname='ИИлья',
cost_centers_id='123...fef',
department_id='987...ghj',
limits=[
typing.Limit(
limit_id='abcdef_taxi',
service=typing.Service('taxi')
),
typing.Limit(
limit_id='abcdef_eats',
service=typing.Service('eats')
),
typing.Limit(
limit_id='abcdef_drive',
service=typing.Service('drive')
),
],
)
response_create = await user_manager.create(user=user)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
List
Получает список сотрудников.
async def list(
limit: Optional[int] = None,
cursor: Optional[str] = None
) -> UserListResponse
Параметры
limit
– количество выводимых записей. При отсутствии данного параметра возвращается информация о первых 100 записях.cursor
– отметка запроса (возвращается в теле ответа на предыдущий запрос). Для запроса первой страницы параметр указывать не нужно, для запросов последующих страниц — обязательно.
В случае успешного выполнения возвращает класс UserListResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
users_list = await user_manager.list(limit=100, offset=0)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
Get
Получает подробную информацию о сотруднике клиента.
async def get(user_id: str) -> UserGetResponse
Параметр
user_id
– идентификатор сотрудника, по которому предоставляется информация.
В случае успешного выполнения возвращает класс UserGetResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
user_info = await user_manager.get(user_id='f65...c57d')
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
Update
Обновляет информацию о сотруднике клиента.
async def update(
user_id: str,
user: User
) -> UserUpdateResponse
Параметр
user_id
– идентификатор сотрудника, по которому обновляется информация.user
– данные о сотруднике, класс User.
В случае успешного выполнения возвращает класс UserUpdateResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
user = typing.User(
fullname='Иванов Илья',
phone='+79990000000',
is_active=True,
nickname='ИИлья',
cost_centers_id='123...fef',
department_id='987...ghj',
limits=[
typing.Limit(
limit_id='abcdef_taxi',
service=typing.Service('taxi')
),
typing.Limit(
limit_id='abcdef_eats',
service=typing.Service('eats')
),
typing.Limit(
limit_id='abcdef_drive',
service=typing.Service('drive')
),
],
)
response_update = await user_manager.update(user_id='f65...c57d', user=user)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
Archive
Архивирует сотрудника клиента.
async def archive(user_id: str) -> UserUpdateResponse
Параметр
user_id
– идентификатор сотрудника, информация по которому архивируется.
В случае успешного выполнения возвращает класс UserUpdateResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
response_archive = await user_manager.archive(user_id='f65...c57d')
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
SpendingManager
Детализация затрат сотрудников.
class yandex_b2b_go.user.SpendingManager(client: Client)
Метод
- list — получает детализацию затрат сотрудников, совершенных в рамках их лимитов.
List
Получает детализацию затрат сотрудников, совершенных в рамках их лимитов.
async def list(user_ids: UsersSpendingListRequest) -> UsersSpendingListResponse
Параметр
user_ids
– список сотрудников, по которым запрашивается детализация затрат, класс UsersSpendingListRequest.
В случае успешного выполнения возвращает класс UserSpendingListResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import UserManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
user_manager = UserManager(client=client)
try:
user_ids = UsersSpendingListRequest(
user_ids=[
'26e8...3f62',
'5758...0ede',
],
)
response_archive = await user_manager.spending.list(user_ids=user_ids)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())